package com.wing.others.entity.request;

import lombok.Data;

import java.util.List;

/**
 *  创建销售出库单
 */
@Data
public class OthersCreateRequest {

    /**
     *  外部单据号,后台做唯一性检查。用于防止重复提交，和外系统数据对应。
     */
    private String externalCode;

    /**
     * 单据编码
     */
    private String code;

    /**
     * 往来单位信息code
     */
    private PartnerRequest partner;

    /**
     * 单据类型。默认值:{Code: "ST1001"}
     */
    private PurchaseVoucherTypeRequest  voucherType;



    /**
     * 单据日期
     */
    private String voucherDate;


    /**
     * 业务类型
     */
    private PurchaseBusiTypeRequest busiType;

    /**
     * 仓库
     */
    private  WarehouseRequest warehouse;



    /**
     * 明细行信息
     */
    private List<OthersRdrecordDetailsRequest> rDRecordDetails;

    /**
     * 明细行信息
     */
    private List<OthersRdrecordDetailsRequest> res;

    /**
     * 备注
     */
    private String memo;


    @Data
    public class PurchaseVoucherTypeRequest{

        /**
         * 单据类型。默认值:{Code: "ST1021"}
         */
        private String code;


    }


    /**
     * 业务类型
     */
    @Data
    public class PurchaseBusiTypeRequest{
        /**
         * 业务类型编码
         *
         * 41：直接领料
         *
         * 42：直接退料
         *
         * 67：自制领料
         *
         * 68：自制退料
         *
         * CM01：共耗领料
         *
         * CM02：共耗退料
         *
         * MS01：补料领料
         *
         * MS02：补料领料退料
         *
         *  业务类型。默认值： {Code:"41"}
         */
        private String code;
    }





    /**
     * 仓库信息
     */
    @Data
    public class WarehouseRequest{
        /**
         * 仓库编码
         */
        private String code;
        /**
         * 仓库名称
         */
        private String name;
    }



    /**
     * 往来单位信息
     */
    @Data
    public class PartnerRequest{

        /**
         * 往来单位编码
         */
        private String code;

    }



}
